1 Abstract

2 Wprowadzenie

2.1 Motywacje i opis problemu

2.2 Wybrane struktury pamięciowe

2.3 Cel pracy

3 Implementacja struktur pamięciowych

3.1 Lista

3.1.1 Dodawanie

3.1.2 Odczyt

3.1.3 Odczyt sekwencyjny

3.1.4 Aktualizacja

3.1.5 Usuwanie

3.2 Słownik

3.2.1 Dodawanie

3.2.2 Odczyt

3.2.3 Odczyt sekwencyjny

3.2.4 Aktualizacja

3.2.5 Usuwanie

3.3 T-Drzewo

3.3.1 Dodawanie

3.3.2 Odczyt

3.3.3 Odczyt sekwencyjny

3.3.4 Aktualizacja

3.3.5 Usuwanie

4 Metodologia badań

W tym rozdziale zostanie opisana obrana metodologia badań uwzględniająca poszczególne operacje, środowisko oraz sposób przeprowadzenia badań.

4.1 Wybrane operacje

Do badań wybrano 6 różnych operacji:

  • Dodawanie - do istniejącej bazy danych dodano n różnych nowych wartości o kolejnych wartościach indeksu, rozpoczynających się od wartości większej o 1 od największej obecnie istniejących. Pod każdy z kluczy generowano losowo dane osoby (imię, nazwisko, numer PESEL, adres mailowy, numer telefonu, wiek oraz adres).

  • Odczyt - do odczytu wybierano każdorazowo losową wartość ze wszystkich wartości indeksu bazy danych.

  • Odczyt sekwencyjny - do odczytu wybierano każdorazowo losową wartość początkową przedziału. Na jej podstawie każdorazowo dokonano 100 odczytów sekwencyjnych wartości kluczy.

  • Aktualizacja - do aktualizacji wybierano każdorazowo losową wartość ze wszystkich wartości indeksu bazy danych, a następnie dokonywano ponownego generowania danych osoby.

  • Usuwanie - do usuwania wybrano każdorazowo losową wartość, od wartości minimalnej, do maksymalnej z bazy danych. Niektóre odczyty mogły próbować usunąć wartość nieistniejącą.

  • Połączenie operacji - operacja składająca się z łańcucha 100 operacji odczytu z całej bazy danych, 100 operacji dodania wartości o nowych indeksach wzorem operacji dodania oraz 100 operacji usunięcia dodanych przed chwilą danych.

4.2 Przeprowadzone badania

W celu uzyskania miarodajnych wyników, objęto poniższą metodologie badań.

Każda z operacji została wykonana 3000 razy pod rząd, w celu uniknięcia tzw. outlayerów, mierząc czas wykonania zbioru operacji. Pozwoliło to osiągnąć uśrednione czasy dla każdej z operacji. W czas operacji jest również wliczony losowy wybór wartości z przedziału zależnego od wielkości danych.

Sekwencje operacji zostały uruchomione na bazach danych z różną, początkową ilością danych. zaczynając na 10,000 rekordach, kończąc na 100,000 z krokiem 10,000.

W celu zminimalizowania wpływu usług uruchamianych przez system w tle niezależnie od użytkownika, generując outlayery, cały proces został wykonany 3 razy, pozwalając na uśrednienie wyników badań.

4.3 Opis środowiska

Środowisko do przeprowadzenia badań stanowi komputer wyposażony w:

  • Procesor Ryzen 5 3600
  • 16 GB pamięci DDR4 o taktowaniu 3200 MHz
  • System Windows 11 w wersji 21H2
  • Python w wersji 3.11.1

W ramach przeprowadzanych badań, nie dokonywano żadnych operacji na wyżej wymienionym systemie.

5 Wyniki badań

W tej sekcji zawiera się wizualizacja oraz opis wyników przeprowadzonych badań.

5.1 Dodawanie danych

5.2 Odczyt losowy danych

5.3 Odczyt sekwencyjny danych

5.4 Aktualizacja danych

5.5 Usuwanie danych

6 Zakończenie

6.1 Podsumowanie prac i wnioski

7 Literatura